/**
 */
package DentalClinicEMF.clinic;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Client</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link DentalClinicEMF.clinic.Client#getName <em>Name</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getAddress <em>Address</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getAge <em>Age</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getDeltaID <em>Delta ID</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getClientType <em>Client Type</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getEReference0 <em>EReference0</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getEReference1 <em>EReference1</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getEReference2 <em>EReference2</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getPreferredDentist <em>Preferred Dentist</em>}</li>
 *   <li>{@link DentalClinicEMF.clinic.Client#getCAppointments <em>CAppointments</em>}</li>
 * </ul>
 * </p>
 *
 * @see DentalClinicEMF.clinic.ClinicPackage#getClient()
 * @model
 * @generated
 */
public interface Client extends EObject {
	/**
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Name</em>' attribute.
	 * @see #setName(String)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_Name()
	 * @model
	 * @generated
	 */
	String getName();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getName <em>Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Name</em>' attribute.
	 * @see #getName()
	 * @generated
	 */
	void setName(String value);

	/**
	 * Returns the value of the '<em><b>Address</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Address</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Address</em>' attribute.
	 * @see #setAddress(String)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_Address()
	 * @model
	 * @generated
	 */
	String getAddress();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getAddress <em>Address</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Address</em>' attribute.
	 * @see #getAddress()
	 * @generated
	 */
	void setAddress(String value);

	/**
	 * Returns the value of the '<em><b>Age</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Age</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Age</em>' attribute.
	 * @see #setAge(int)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_Age()
	 * @model
	 * @generated
	 */
	int getAge();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getAge <em>Age</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Age</em>' attribute.
	 * @see #getAge()
	 * @generated
	 */
	void setAge(int value);

	/**
	 * Returns the value of the '<em><b>Delta ID</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Delta ID</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Delta ID</em>' attribute.
	 * @see #setDeltaID(int)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_DeltaID()
	 * @model
	 * @generated
	 */
	int getDeltaID();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getDeltaID <em>Delta ID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Delta ID</em>' attribute.
	 * @see #getDeltaID()
	 * @generated
	 */
	void setDeltaID(int value);

	/**
	 * Returns the value of the '<em><b>Client Type</b></em>' attribute.
	 * The literals are from the enumeration {@link DentalClinicEMF.clinic.ClientType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Client Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Client Type</em>' attribute.
	 * @see DentalClinicEMF.clinic.ClientType
	 * @see #setClientType(ClientType)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_ClientType()
	 * @model
	 * @generated
	 */
	ClientType getClientType();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getClientType <em>Client Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Client Type</em>' attribute.
	 * @see DentalClinicEMF.clinic.ClientType
	 * @see #getClientType()
	 * @generated
	 */
	void setClientType(ClientType value);

	/**
	 * Returns the value of the '<em><b>EReference0</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>EReference0</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>EReference0</em>' reference.
	 * @see #setEReference0(Client)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_EReference0()
	 * @model
	 * @generated
	 */
	Client getEReference0();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getEReference0 <em>EReference0</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>EReference0</em>' reference.
	 * @see #getEReference0()
	 * @generated
	 */
	void setEReference0(Client value);

	/**
	 * Returns the value of the '<em><b>EReference1</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>EReference1</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>EReference1</em>' reference.
	 * @see #setEReference1(Client)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_EReference1()
	 * @model
	 * @generated
	 */
	Client getEReference1();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getEReference1 <em>EReference1</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>EReference1</em>' reference.
	 * @see #getEReference1()
	 * @generated
	 */
	void setEReference1(Client value);

	/**
	 * Returns the value of the '<em><b>EReference2</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>EReference2</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>EReference2</em>' reference.
	 * @see #setEReference2(Client)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_EReference2()
	 * @model
	 * @generated
	 */
	Client getEReference2();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getEReference2 <em>EReference2</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>EReference2</em>' reference.
	 * @see #getEReference2()
	 * @generated
	 */
	void setEReference2(Client value);

	/**
	 * Returns the value of the '<em><b>Preferred Dentist</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Preferred Dentist</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Preferred Dentist</em>' containment reference.
	 * @see #setPreferredDentist(Dentist)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_PreferredDentist()
	 * @model containment="true" required="true"
	 * @generated
	 */
	Dentist getPreferredDentist();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getPreferredDentist <em>Preferred Dentist</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Preferred Dentist</em>' containment reference.
	 * @see #getPreferredDentist()
	 * @generated
	 */
	void setPreferredDentist(Dentist value);

	/**
	 * Returns the value of the '<em><b>CAppointments</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>CAppointments</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>CAppointments</em>' containment reference.
	 * @see #setCAppointments(Appointment)
	 * @see DentalClinicEMF.clinic.ClinicPackage#getClient_CAppointments()
	 * @model containment="true"
	 * @generated
	 */
	Appointment getCAppointments();

	/**
	 * Sets the value of the '{@link DentalClinicEMF.clinic.Client#getCAppointments <em>CAppointments</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>CAppointments</em>' containment reference.
	 * @see #getCAppointments()
	 * @generated
	 */
	void setCAppointments(Appointment value);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model
	 * @generated
	 */
	void makePayment(DentalClinic clinic);

} // Client
